package com.demo.java.OD301_350.OD337;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【最长方连续方波信号(B卷)】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/146154911
 */
public class OdMain {
    public static void main(String[] args) throws IOException {
        try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {
            String signal = br.readLine();  // 读取输入的信号
            String[] signalList = signal.split("00");  // 根据"00"进行分割
            int maxSignalLength = -1;  // 初始最大长度为-1，表示没有符合条件的信号
            String longestSignal = "";  // 存储最长的符合条件的信号

            for (String currentSignal : signalList) {
                if (currentSignal.isEmpty()) {
                    continue;  // 如果当前信号为空，跳过
                }

                // 如果信号以'1'开头，前面加'0'
                if (currentSignal.charAt(0) == '1') {
                    currentSignal = "0" + currentSignal;
                }
                // 如果信号以'1'结尾，后面加'0'
                if (currentSignal.charAt(currentSignal.length() - 1) == '1') {
                    currentSignal = currentSignal + "0";
                }

                // 判断当前信号是否符合完全交换信号的特征
                if (currentSignal.length() > maxSignalLength && !currentSignal.contains("11")
                        && currentSignal.contains("01010")
                        && currentSignal.matches("0+(10){2,}0*")) {
                    maxSignalLength = currentSignal.length();  // 更新最大长度
                    longestSignal = currentSignal;  // 更新最长的符合条件的信号
                }
            }

            // 输出最长的符合条件的信号，若没有则输出-1
            if (maxSignalLength != -1) {
                System.out.println(longestSignal);
            } else {
                System.out.println(maxSignalLength);  // 输出-1表示没有符合条件的信号
            }
        }
    }
}